package TestExercises07;

//正则表达式（爬虫）
/*
需求:把下面文本中的电话，邮箱，手机号，热线都爬取出来。
     来黑马程序员学习ava,
     电话:18512516758，18512508907
     或者联系邮箱:boniu@itcast.cn,
     座机电话:01036517895，010-98951256
     邮箱:bozai@itcast.cn,
     热线电话:400-618-9090，400-618-4000，4006184000，4006189090
 */

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
    手机号码的正则表达式：1[3-9]\\d{9}
    邮箱的正则表达式：\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}
    座机电话的正则表达式：0\\d{2,3}-?[1-9]\\d{4,9}
    热线电话的正则表达式：400-?[1-9]\\d{2}-?[1-9]\\d{3}
 */
public class Test04 {
    public static void main(String[] args) {
        String s = "学习Java," +
                "电话:18512516758，18512508907" +
                "或者联系邮箱:boniu@itcast.cn," +
                "座机电话:01036517895，010-98951256" +
                "邮箱:bozai@itcast.cn," +
                "热线电话:400-618-9090，400-618-4000，4006184000，4006189090";

        String regex = "(1[3-9]\\d{9})|" +
                "(\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2})|" +
                "(0\\d{2,3}-?[1-9]\\d{4,9})|" +
                "(400-?[1-9]\\d{2}-?[1-9]\\d{3})";

        //1、获取正则表达式的对象
        Pattern p = Pattern.compile(regex);

        //2、获取文本匹配器的对象
        //利用m去读取s，会按照p的规则去找小串
        Matcher m = p.matcher(s);

        //3、利用循环获取每一个数据
        while (m.find()) {
            String str = m.group();
            System.out.println(str);
        }
    }
}
